package com.momo.service.sysSetting;

import com.momo.common.common.JSONResult;
import com.momo.common.req.sysSetting.authority.BatchRoleUserReq;
import com.momo.common.req.sysSetting.authority.RoleReq;
import com.momo.common.req.sysSetting.authority.RoleUserReq;
import com.momo.common.req.sysmain.RedisUser;
import com.momo.common.res.authority.LoginAuthReq;

import java.util.List;

/**
 * Created by MOMO on 2019/3/22.
 * 总部角色和第三方角色管理
 */
public interface SysRoleService {
    /**
     * 新增角色(总部/第三方)
     *
     * @param roleReq
     * @param redisUser
     * @return
     */
    public JSONResult add(RoleReq roleReq, RedisUser redisUser);

    /**
     * 编辑角色(总部/第三方)
     *
     * @param roleReq
     * @param redisUser
     * @return
     */
    public JSONResult modify(RoleReq roleReq, RedisUser redisUser);

    /**
     * 角色(总部/第三方) 状态
     *
     * @param roleReq
     * @param redisUser
     * @return
     */
    public JSONResult status(RoleReq roleReq, RedisUser redisUser);

    /**
     * 角色列表给用户
     *
     * @param batchRoleUserReq
     * @param redisUser
     * @return
     */
    public JSONResult rolesToUser(BatchRoleUserReq batchRoleUserReq, RedisUser redisUser);

    /**
     * 权限列表给角色
     *
     * @param batchRoleUserReq
     * @param redisUser
     * @return
     */
    public JSONResult aclsToRole(BatchRoleUserReq batchRoleUserReq, RedisUser redisUser);

    /**
     * //为角色授权 权限 之前， 需要查看该角色拥有哪些权限点，以及当前登录用户可以操作哪些权限
     * @param loginAuthReq
     * @param redisUser
     * @return
     */
    public JSONResult roleHaveAclTree(LoginAuthReq loginAuthReq, RedisUser redisUser);
}
